//package com.authorization.authorizationserveronsso.security.service;
//
//import com.authorization.authorizationserveronsso.config.RedisCache;
//import com.authorization.authorizationserveronsso.security.LoginUser;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.security.authentication.AuthenticationManager;
//import org.springframework.security.authentication.BadCredentialsException;
//import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
//import org.springframework.security.core.Authentication;
//import org.springframework.stereotype.Component;
//
//import javax.annotation.Resource;
//
//
//@Component
//public class SysLoginService{
//    @Autowired
//    private TokenService tokenService;
//
//    @Resource
//    private AuthenticationManager authenticationManager;
//
//    @Autowired
//    private RedisCache redisCache;
//
//    /**
//     * 登录验证
//     *
//     * @param username 用户名
//     * @param password 密码
//     * @return 结果
//     */
//    public String login(String username, String password){
//        // 用户验证
//        Authentication authentication = null;
//        try {
//            //会调用我们定义的 UserDetailsServiceImpl
//            // 的 #loadUserByUsername(String username) 判断用户名是否合理，并且根据用户获取对应的角色，菜单权限
//            authentication = authenticationManager
//                    .authenticate(new UsernamePasswordAuthenticationToken(username, password));
//        }
//        catch (Exception e){    //发生异常，说明验证不通过，记录相应的登陆失败日志
//            if (e instanceof BadCredentialsException){
//                System.out.println("密码不匹配=============================");
//            }
//            else{
//                System.out.println("认证失败===================================");
//            }
//        }
//            //验证通过，记录相应的登陆成功日志
//        System.out.println("登录成功==================================");
//        //认证通过后获取的用户信息已经带有所有的权限信息 在UserDetailsServiceImpl 类中createLoginUser方法中set 当前用户的 权限信息
//        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
//
//        // 生成token
//        return tokenService.createToken(loginUser);
//    }
//
//    public String userLogin(String username, String password){
//        // 用户验证
//        Authentication authentication = null;
//        try {
//            //会调用我们定义的 UserDetailsServiceImpl
//            // 的 #loadUserByUsername(String username) 判断用户名是否合理，并且根据用户获取对应的角色，菜单权限
//            authentication = authenticationManager
//                    .authenticate(new UsernamePasswordAuthenticationToken(username, password));
//        }
//        catch (Exception e){    //发生异常，说明验证不通过，记录相应的登陆失败日志
//            if (e instanceof BadCredentialsException){
//                System.out.println("密码不匹配=============================");
//            }
//            else{
//                System.out.println("认证失败===================================");
//            }
//        }
//        //验证通过，记录相应的登陆成功日志
//        System.out.println("登录成功==================================");
//        //认证通过后获取的用户信息已经带有所有的权限信息 在UserDetailsServiceImpl 类中createLoginUser方法中set 当前用户的 权限信息
//        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
//
//        // 生成token
//        return tokenService.createToken(loginUser);
//    }
//}
